package com.quectel.core.module.alarm.dto;

import com.quectel.core.module.device.dto.DeviceDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * 规则联动
 *
 * @author caolu
 * @email louis.cao@quectel.com
 * @date 2021-10-19 13:39:29
 */
@Data
@Schema
public class AlarmLinkageRuleDto implements Serializable {

    /**
     *
     */
    @Schema(description = "")
    private Long id;

    /**
     * 租户id
     */
    @Schema(description = "租户id")
    private Long tenantId;


    /**
     * 发生告警的设备
     */
    @Schema(description = "发生告警的设备")
    @NotNull
    private Long deviceId;

    /**
     * 规则id
     */
    @Schema(description = "规则id")
    @NotNull
    private Long alarmEventConfigId;

    /**
     * 联动的数据
     */
    @Schema(description = "联动的数据")
    @NotNull
    private Long linkageDeviceId;

    /**
     * 需要下发的命令
     */
    @Schema(description = "需要下发的命令")
    @NotNull
    private String linkageCommand;

    /**
     * 创建人
     */
    @Schema(description = "创建人")
    private String creator;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createTime;

    /**
     * 编辑人
     */
    @Schema(description = "编辑人")
    private String editor;

    /**
     * 编辑时间
     */
    @Schema(description = " 编辑时间")
    private Date editTime;

    /************非数据库字段 start ************/
    private DeviceDto alarmDeviceDto;

    private DeviceDto linkageDeviceDto;

    private AlarmEventConfigDto alarmEventConfigDto;
    /************非数据库字段 end **************/
}
